﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
using System.IO;
using System.ComponentModel;

namespace Edigio
{

	/*
	 * Esta clase proporciona todos los métodos para generar un ensamblado, su modificación de permisos y 
	 * enlazado. Los datos para ensamblar, por ser propio de cada editor, van a estar en la clase Scintilla_	 * para_edigio.
	 */

	static class Ensamblado
	{
		//public static void ensamblar_archivo_con_los_comandos_generados_de_forma_automatica(String ruta_de_archivo, String ruta_a_carpeta_donde_se_encuentra_el_archivo)
		//{
		//        Process proceso_para_el_ensamblado = new Process();
		//        ProcessStartInfo informacion_del_proceso_para_el_ensamblado = new ProcessStartInfo();
		//        StreamReader lector;
		//        //String carpeta_personal;
		//        String usuario = Environment.UserName.ToString();

		//        informacion_del_proceso_para_el_ensamblado.UseShellExecute = false;
		//        informacion_del_proceso_para_el_ensamblado.RedirectStandardError = true;
		//        proceso_para_el_ensamblado.StartInfo = informacion_del_proceso_para_el_ensamblado;

		//        if (Config.sistema_operativo == "Windows")
		//        {
		//                //carpeta_personal = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
		//                proceso_para_el_ensamblado.StartInfo.WorkingDirectory = "C:\\Users\\" + usuario + "\\AppData\\Local\\nasm";
		//                proceso_para_el_ensamblado.StartInfo.FileName = "nasm.exe";
		//        }
		//        else if (Config.sistema_operativo == "Gnu/Linux")
		//        {
		//                proceso_para_el_ensamblado.StartInfo.WorkingDirectory = "/usr/bin";
		//                proceso_para_el_ensamblado.StartInfo.FileName = "nasm";
		//        }
		//        else
		//        {
		//                proceso_para_el_ensamblado.StartInfo.WorkingDirectory = "/usr/local/bin";
		//                proceso_para_el_ensamblado.StartInfo.FileName = "nasm";
		//        }

		//        proceso_para_el_ensamblado.StartInfo.Arguments = "-f " + Config.tipo_de_binario_solicitado + " -O" + Config.optimizacion + " " + "-i " + ruta_a_carpeta_donde_se_encuentra_el_archivo + " " + ruta_de_archivo;
		//        MessageBox.Show(proceso_para_el_ensamblado.StartInfo.Arguments.ToString());

		//        try
		//        {
		//                proceso_para_el_ensamblado.Start();
		//                lector = proceso_para_el_ensamblado.StandardError;
		//                Config.errores_de_ensamblado = lector.ReadToEnd();
		//        }
		//        // Si es windows y no encontró el archivo...
		//        catch (Win32Exception)
		//        {
		//                MessageBox.Show("Primero genere un nuevo archivo.");
		//        }


		//}

		//public static void ensamblar_archivo_con_los_comandos_generados_de_forma_manual(String comando_manual)
		//{
		//        Process proceso_para_el_ensamblado = new Process();
		//        ProcessStartInfo informacion_del_proceso_para_el_ensamblado = new ProcessStartInfo();
		//        String usuario = Environment.UserName.ToString();

		//        informacion_del_proceso_para_el_ensamblado.UseShellExecute = false;
		//        informacion_del_proceso_para_el_ensamblado.RedirectStandardError = true;

		//        proceso_para_el_ensamblado.StartInfo = informacion_del_proceso_para_el_ensamblado;


		//        if (Config.sistema_operativo == "Windows")
		//        {
		//                proceso_para_el_ensamblado.StartInfo.WorkingDirectory = "C:\\Users\\" + usuario + "\\AppData\\Local\\nasm";
		//                proceso_para_el_ensamblado.StartInfo.FileName = "nasm.exe";
		//        }
		//        else
		//        {
		//                proceso_para_el_ensamblado.StartInfo.WorkingDirectory = "/usr/bin";
		//                proceso_para_el_ensamblado.StartInfo.FileName = "nasm";
		//        }

		//        proceso_para_el_ensamblado.StartInfo.Arguments = comando_manual;

		//        try
		//        {
		//                proceso_para_el_ensamblado.Start();
		//                StreamReader lector = proceso_para_el_ensamblado.StandardError;
		//                Config.errores_de_ensamblado = lector.ReadToEnd();
		//        }
		//        // Si es windows y no encontró el archivo...
		//        catch (Win32Exception)
		//        {
		//                MessageBox.Show("Primero genere un nuevo archivo.");
		//        }
		//}
	}
}
